/*
 * Copyright 2007-2008 by Matthias Buch-Kromann <mbk.isv@cbs.dk>.
 * 
 * This file is part of the Open-source Dependency Toolkit (OSDT),
 * see http://code.google.com/p/open-source-dependency-toolkit. 
 * 
 * The OSDT is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 *
 * The OSDT is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with the OSDT in the file COPYING and COPYING.LESSER. If not, see
 * http://www.gnu.org/licenses.
 */

package org.osdtsystem.values;

/**
 * An identifier for a node in a graph. 
 * @author Matthias Buch-Kromann <mbk.isv@cbs.dk>
 */

public final class NodeID implements Location, Node, Comparable {
    private final int id;

    // Constructor
    public NodeID(int id) {
        this.id = id;
    }

    @Override
    public int compareTo(Object o) {
        NodeID n = (NodeID) o;
        return this.id - n.id;
    }

    @Override
    public String toString() {
        return "" + id;
    }

    @Override
    public NodeID asNode() {
        return this;
    }

    @Override
    public EdgeID asEdge() {
        return null;
    }

    @Override
    public NodeID asLocation() {
        return this;
    }
}